[INFO] cloning repository https://github.com/yzj327850/crosscrypt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yzj327850/crosscrypt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyzj327850%2Fcrosscrypt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyzj327850%2Fcrosscrypt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 27018dde936279a595436afedee47ed391113819
[INFO] checking yzj327850/crosscrypt against master#09a371361240e42b0d69438fd1179efcf212e576 for pr-157814-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyzj327850%2Fcrosscrypt" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yzj327850/crosscrypt
[INFO] finished tweaking git repo https://github.com/yzj327850/crosscrypt
[INFO] tweaked toml for git repo https://github.com/yzj327850/crosscrypt written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yzj327850/crosscrypt on toolchain 09a371361240e42b0d69438fd1179efcf212e576
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yzj327850/crosscrypt already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rtoolbox v0.0.5
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.50
[INFO] [stderr]   Downloaded rpassword v7.5.4
[INFO] [stderr]   Downloaded dialoguer v0.11.0
[INFO] [stderr]   Downloaded argon2 v0.5.3
[INFO] [stderr]   Downloaded password-hash v0.5.0
[INFO] [stderr]   Downloaded poly1305 v0.8.0
[INFO] [stderr]   Downloaded chacha20poly1305 v0.10.1
[INFO] [stderr]   Downloaded zerocopy v0.8.50
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16
[INFO] running `Command { std: "docker" "start" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16" "/opt/rustwide/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16" "/opt/rustwide/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking memchr v2.8.1
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking fuzzy-matcher v0.3.7
[INFO] [stderr]     Checking rtoolbox v0.0.5
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]    Compiling crosscrypt v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking rpassword v7.5.4
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking uuid v1.23.2
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.50
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/core/crypto.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/core/format.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, info, warn};
[INFO] [stdout]   |               ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CryptoAlgorithm` and `KdfAlgorithm`
[INFO] [stdout]   --> src/core/format.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::{CryptoAlgorithm, CrossCryptError, EncryptionConfig, KdfAlgorithm, VolumeStatus};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/fs/block.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tracing::{debug, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/fs/ntfs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]  --> src/fs/ntfs.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, trace, warn};
[INFO] [stdout]   |                      ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/core/format.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     device: &Path,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `master_key`
[INFO] [stdout]    --> src/core/format.rs:364:5
[INFO] [stdout]     |
[INFO] [stdout] 364 |     master_key: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:28
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:41
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs/ntfs.rs:512:29
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn getattr(&self, ino: u64) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/core/crypto.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/core/format.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, info, warn};
[INFO] [stdout]   |               ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CryptoAlgorithm` and `KdfAlgorithm`
[INFO] [stdout]   --> src/core/format.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::{CryptoAlgorithm, CrossCryptError, EncryptionConfig, KdfAlgorithm, VolumeStatus};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VolumeSuperblock`
[INFO] [stdout]   --> src/core/mod.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use format::{VolumeHeader, VolumeSuperblock};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Argon2idParams`
[INFO] [stdout]   --> src/core/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use kdf::{Argon2idParams, KdfEngine};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/fs/block.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tracing::{debug, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/fs/ntfs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]  --> src/fs/ntfs.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, trace, warn};
[INFO] [stdout]   |                      ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `block::BlockManager`
[INFO] [stdout]  --> src/fs/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use block::BlockManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cache::BlockCache`
[INFO] [stdout]  --> src/fs/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use cache::BlockCache;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encrypt_fs::EncryptFileSystem`
[INFO] [stdout]  --> src/fs/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use encrypt_fs::EncryptFileSystem;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntfs::NtfsFilesystem`
[INFO] [stdout]  --> src/fs/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use ntfs::NtfsFilesystem;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/core/crypto.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/core/format.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, info, warn};
[INFO] [stdout]   |               ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CryptoAlgorithm` and `KdfAlgorithm`
[INFO] [stdout]   --> src/core/format.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::{CryptoAlgorithm, CrossCryptError, EncryptionConfig, KdfAlgorithm, VolumeStatus};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/fs/block.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tracing::{debug, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/fs/ntfs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]  --> src/fs/ntfs.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, trace, warn};
[INFO] [stdout]   |                      ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/core/crypto.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tracing::{debug, info};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]  --> src/core/format.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::{debug, info, warn};
[INFO] [stdout]   |               ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CryptoAlgorithm` and `KdfAlgorithm`
[INFO] [stdout]   --> src/core/format.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::{CryptoAlgorithm, CrossCryptError, EncryptionConfig, KdfAlgorithm, VolumeStatus};
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VolumeSuperblock`
[INFO] [stdout]   --> src/core/mod.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use format::{VolumeHeader, VolumeSuperblock};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Argon2idParams`
[INFO] [stdout]   --> src/core/mod.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use kdf::{Argon2idParams, KdfEngine};
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> src/fs/block.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use tracing::{debug, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::OsString`
[INFO] [stdout]  --> src/fs/ntfs.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ffi::OsString;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]  --> src/fs/ntfs.rs:9:22
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tracing::{debug, trace, warn};
[INFO] [stdout]   |                      ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `block::BlockManager`
[INFO] [stdout]  --> src/fs/mod.rs:6:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use block::BlockManager;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cache::BlockCache`
[INFO] [stdout]  --> src/fs/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use cache::BlockCache;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encrypt_fs::EncryptFileSystem`
[INFO] [stdout]  --> src/fs/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use encrypt_fs::EncryptFileSystem;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ntfs::NtfsFilesystem`
[INFO] [stdout]  --> src/fs/mod.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use ntfs::NtfsFilesystem;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/core/format.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     device: &Path,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `master_key`
[INFO] [stdout]    --> src/core/format.rs:364:5
[INFO] [stdout]     |
[INFO] [stdout] 364 |     master_key: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/core/format.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     device: &Path,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `master_key`
[INFO] [stdout]    --> src/core/format.rs:364:5
[INFO] [stdout]     |
[INFO] [stdout] 364 |     master_key: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:28
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:41
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs/ntfs.rs:512:29
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn getattr(&self, ino: u64) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:28
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:41
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs/ntfs.rs:512:29
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn getattr(&self, ino: u64) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `EncryptionInProgress` is never constructed
[INFO] [stdout]   --> src/core/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum VolumeStatus {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     EncryptionInProgress,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VolumeStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EncryptionInProgress` and `DeviceNotFound` are never constructed
[INFO] [stdout]   --> src/core/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum CrossCryptError {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     EncryptionInProgress,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     DeviceNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CrossCryptError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWEAK_SIZE` is never used
[INFO] [stdout]   --> src/core/crypto.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TWEAK_SIZE: usize = 16;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `decrypt_sector`, `decrypt_sectors`, and `xts_decrypt` are never used
[INFO] [stdout]    --> src/core/crypto.rs:55:12
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl CryptoEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn decrypt_sector(&self, sector_index: u64, data: &mut [u8]) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn decrypt_sectors(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn xts_decrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SECTOR_SIZE` is never used
[INFO] [stdout]   --> src/core/format.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const SECTOR_SIZE: usize = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PASSWORD_ATTEMPTS` is never used
[INFO] [stdout]   --> src/core/format.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const MAX_PASSWORD_ATTEMPTS: u32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ATTEMPTS_BEFORE_WIPE` is never used
[INFO] [stdout]   --> src/core/format.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const MAX_ATTEMPTS_BEFORE_WIPE: u32 = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCK_DURATION_SECS` is never used
[INFO] [stdout]   --> src/core/format.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const LOCK_DURATION_SECS: u64 = 300; // 5 minutes
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `increment_attempt` is never used
[INFO] [stdout]    --> src/core/format.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl VolumeHeader {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn increment_attempt(&mut self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SALT_SIZE` is never used
[INFO] [stdout]  --> src/core/kdf.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_SALT_SIZE: usize = 32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `generate_salt` is never used
[INFO] [stdout]   --> src/core/kdf.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl KdfEngine {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn generate_salt() -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Argon2idParams` is never constructed
[INFO] [stdout]   --> src/core/kdf.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Argon2idParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `conservative` and `fast` are never used
[INFO] [stdout]   --> src/core/kdf.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Argon2idParams {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 69 |     /// Conservative parameters for maximum security
[INFO] [stdout] 70 |     pub fn conservative() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn fast() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `XtsCipher` is never constructed
[INFO] [stdout]   --> src/core/xts.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct XtsCipher {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `encrypt_sector`, `decrypt_sector`, and `generate_tweak` are never used
[INFO] [stdout]   --> src/core/xts.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl XtsCipher {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 18 |     /// Create new XTS cipher from 512-bit key
[INFO] [stdout] 19 |     pub fn new(key: &[u8; 64]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn encrypt_sector(&self, sector_index: u64, data: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn decrypt_sector(&self, sector_index: u64, data: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn generate_tweak(&self, sector_index: u64) -> [u8; 16] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiply_tweak` is never used
[INFO] [stdout]   --> src/core/xts.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn multiply_tweak(tweak: &mut [u8; 16]) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockManager` is never constructed
[INFO] [stdout]  --> src/fs/block.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct BlockManager {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_block`, `write_block`, `read_blocks`, `write_blocks`, and `total_blocks` are never used
[INFO] [stdout]    --> src/fs/block.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl BlockManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  16 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub async fn read_block(&self, block_num: u64) -> Result<Vec<u8>, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub async fn write_block(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub async fn read_blocks(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn write_blocks(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn total_blocks(&self) -> Result<u64, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheEntry` is never constructed
[INFO] [stdout]   --> src/fs/cache.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct CacheEntry {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockCache` is never constructed
[INFO] [stdout]   --> src/fs/cache.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BlockCache {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs/cache.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl BlockCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(manager: Arc<BlockManager>, max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn read(&self, block_num: u64) -> Result<Vec<u8>, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub async fn write(&self, block_num: u64, data: Vec<u8>) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub async fn flush(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub async fn flush_block(&self, block_num: u64) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn clear(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     async fn insert(&self, block_num: u64, data: Vec<u8>, dirty: bool) {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     async fn evict_lru(&self, cache: &mut HashMap<u64, CacheEntry>) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub async fn clean_expired(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileAttr` is never constructed
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct FileAttr {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileType` is never used
[INFO] [stdout]   --> src/fs/encrypt_fs.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum FileType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EncryptFileSystem` is never used
[INFO] [stdout]   --> src/fs/encrypt_fs.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait EncryptFileSystem: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Statfs` is never constructed
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct Statfs {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NtfsEncryptFs` is never constructed
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct NtfsEncryptFs {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl NtfsEncryptFs {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 180 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NtfsBootSector` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct NtfsBootSector {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MftEntry` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct MftEntry {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AttributeType` is never used
[INFO] [stdout]   --> src/fs/ntfs.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum AttributeType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MftAttribute` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MftAttribute {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AttributeData` is never used
[INFO] [stdout]   --> src/fs/ntfs.rs:75:10
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum AttributeData {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DataRun` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct DataRun {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileNameAttr` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct FileNameAttr {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StandardInfo` is never constructed
[INFO] [stdout]    --> src/fs/ntfs.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct StandardInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NtfsFilesystem` is never constructed
[INFO] [stdout]    --> src/fs/ntfs.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct NtfsFilesystem {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs/ntfs.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl NtfsFilesystem {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 140 |     pub fn new(block_manager: BlockManager) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub async fn parse_boot_sector(&mut self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub async fn read_mft_entry(&mut self, record_number: u64) -> Result<MftEntry, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn parse_mft_entry(&self, data: &[u8]) -> Result<MftEntry, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn parse_attribute(&self, data: &[u8]) -> Result<MftAttribute, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn parse_non_resident_data(&self, data: &[u8]) -> Result<AttributeData, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn parse_variable_int(&self, data: &[u8]) -> Result<u64, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     fn parse_signed_variable_int(&self, data: &[u8]) -> Result<i64, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn parse_file_name(data: &[u8]) -> Result<FileNameAttr, CrossCryptError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn ntfs_time_to_systemtime(ntfs_time: u64) -> SystemTime {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinuxFuseFilesystem` is never constructed
[INFO] [stdout]   --> src/platform/linux.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct LinuxFuseFilesystem;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/platform/linux.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl LinuxFuseFilesystem {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_sectors`
[INFO] [stdout]   --> src/core/crypto.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let num_sectors = data.len() / self.sector_size;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_sectors`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/core/format.rs:276:5
[INFO] [stdout]     |
[INFO] [stdout] 276 |     device: &Path,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/core/format.rs:363:5
[INFO] [stdout]     |
[INFO] [stdout] 363 |     header: &VolumeHeader,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `master_key`
[INFO] [stdout]    --> src/core/format.rs:364:5
[INFO] [stdout]     |
[INFO] [stdout] 364 |     master_key: &[u8],
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_master_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parent`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:28
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/fs/ntfs.rs:508:41
[INFO] [stdout]     |
[INFO] [stdout] 508 |     async fn lookup(&self, parent: u64, name: &std::ffi::OsStr) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ino`
[INFO] [stdout]    --> src/fs/ntfs.rs:512:29
[INFO] [stdout]     |
[INFO] [stdout] 512 |     async fn getattr(&self, ino: u64) -> Result<FileAttr, CrossCryptError> {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_ino`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/main.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `EncryptionInProgress` is never constructed
[INFO] [stdout]   --> src/core/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum VolumeStatus {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     EncryptionInProgress,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VolumeStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `EncryptionInProgress` and `DeviceNotFound` are never constructed
[INFO] [stdout]   --> src/core/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum CrossCryptError {
[INFO] [stdout]    |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     EncryptionInProgress,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     DeviceNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CrossCryptError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TWEAK_SIZE` is never used
[INFO] [stdout]   --> src/core/crypto.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const TWEAK_SIZE: usize = 16;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `decrypt_sectors` is never used
[INFO] [stdout]   --> src/core/crypto.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl CryptoEngine {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn decrypt_sectors(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SECTOR_SIZE` is never used
[INFO] [stdout]   --> src/core/format.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const SECTOR_SIZE: usize = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PASSWORD_ATTEMPTS` is never used
[INFO] [stdout]   --> src/core/format.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const MAX_PASSWORD_ATTEMPTS: u32 = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ATTEMPTS_BEFORE_WIPE` is never used
[INFO] [stdout]   --> src/core/format.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const MAX_ATTEMPTS_BEFORE_WIPE: u32 = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCK_DURATION_SECS` is never used
[INFO] [stdout]   --> src/core/format.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const LOCK_DURATION_SECS: u64 = 300; // 5 minutes
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `increment_attempt` is never used
[INFO] [stdout]    --> src/core/format.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl VolumeHeader {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn increment_attempt(&mut self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Argon2idParams` is never constructed
[INFO] [stdout]   --> src/core/kdf.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Argon2idParams {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `conservative` and `fast` are never used
[INFO] [stdout]   --> src/core/kdf.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl Argon2idParams {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 69 |     /// Conservative parameters for maximum security
[INFO] [stdout] 70 |     pub fn conservative() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn fast() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `device`, `crypto`, `sector_size`, and `data_offset` are never read
[INFO] [stdout]   --> src/fs/block.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BlockManager {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  9 |     device: Arc<RwLock<tokio::fs::File>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 10 |     crypto: Arc<CryptoEngine>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 11 |     pub sector_size: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 12 |     data_offset: u64, // Offset where encrypted data starts
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_block`, `write_block`, `read_blocks`, `write_blocks`, and `total_blocks` are never used
[INFO] [stdout]    --> src/fs/block.rs:16:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl BlockManager {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  16 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  31 |     pub async fn read_block(&self, block_num: u64) -> Result<Vec<u8>, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub async fn write_block(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub async fn read_blocks(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn write_blocks(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub async fn total_blocks(&self) -> Result<u64, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheEntry` is never constructed
[INFO] [stdout]   --> src/fs/cache.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct CacheEntry {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockCache` is never constructed
[INFO] [stdout]   --> src/fs/cache.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct BlockCache {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs/cache.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl BlockCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  26 |     pub fn new(manager: Arc<BlockManager>, max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn read(&self, block_num: u64) -> Result<Vec<u8>, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub async fn write(&self, block_num: u64, data: Vec<u8>) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub async fn flush(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub async fn flush_block(&self, block_num: u64) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub async fn clear(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     async fn insert(&self, block_num: u64, data: Vec<u8>, dirty: bool) {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     async fn evict_lru(&self, cache: &mut HashMap<u64, CacheEntry>) {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub async fn clean_expired(&self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileAttr` is never constructed
[INFO] [stdout]  --> src/fs/encrypt_fs.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct FileAttr {
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FileType` is never used
[INFO] [stdout]   --> src/fs/encrypt_fs.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum FileType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `EncryptFileSystem` is never used
[INFO] [stdout]   --> src/fs/encrypt_fs.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub trait EncryptFileSystem: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Statfs` is never constructed
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct Statfs {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NtfsEncryptFs` is never constructed
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct NtfsEncryptFs {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/fs/encrypt_fs.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl NtfsEncryptFs {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 180 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/fs/ntfs.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct NtfsBootSector {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 18 |     pub bytes_per_sector: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     pub sectors_per_cluster: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub total_sectors: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub mft_cluster: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 22 |     pub mft_mirror_cluster: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub clusters_per_mft_record: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub clusters_per_index_record: i8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub serial_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NtfsBootSector` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/fs/ntfs.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct MftEntry {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 31 |     pub signature: [u8; 4],
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 32 |     pub flags: u16,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 33 |     pub used_size: u32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 34 |     pub allocated_size: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 35 |     pub base_record: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 36 |     pub next_attribute_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub attributes: Vec<MftAttribute>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MftEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum AttributeType {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 43 |     StandardInformation = 0x10,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     AttributeList = 0x20,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 45 |     FileName = 0x30,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 46 |     ObjectId = 0x40,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 47 |     SecurityDescriptor = 0x50,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     VolumeName = 0x60,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 49 |     VolumeInformation = 0x70,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     Data = 0x80,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 51 |     IndexRoot = 0x90,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     IndexAllocation = 0xA0,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     Bitmap = 0xB0,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 54 |     ReparsePoint = 0xC0,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 55 |     EaInformation = 0xD0,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     Ea = 0xE0,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 57 |     LoggedUtilityStream = 0x100,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     End = 0xFFFFFFFF,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AttributeType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/fs/ntfs.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct MftAttribute {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 64 |     pub attr_type: AttributeType,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 65 |     pub length: u32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 66 |     pub non_resident: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 67 |     pub name_length: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 68 |     pub name_offset: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 69 |     pub flags: u16,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 70 |     pub attribute_id: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 71 |     pub data: AttributeData,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MftAttribute` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Resident` and `NonResident` are never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub enum AttributeData {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 76 |     Resident { data: Vec<u8> },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 77 |     NonResident {
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AttributeData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cluster_offset` and `cluster_count` are never read
[INFO] [stdout]   --> src/fs/ntfs.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub struct DataRun {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 92 |     pub cluster_offset: i64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 93 |     pub cluster_count: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DataRun` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileNameAttr` is never constructed
[INFO] [stdout]   --> src/fs/ntfs.rs:98:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub struct FileNameAttr {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StandardInfo` is never constructed
[INFO] [stdout]    --> src/fs/ntfs.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct StandardInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `block_manager`, `boot_sector`, `mft_cache`, `cluster_size`, and `mft_record_size` are never read
[INFO] [stdout]    --> src/fs/ntfs.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct NtfsFilesystem {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 132 |     block_manager: BlockManager,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 133 |     boot_sector: Option<NtfsBootSector>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 134 |     mft_cache: HashMap<u64, MftEntry>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 135 |     cluster_size: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 136 |     mft_record_size: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/fs/ntfs.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl NtfsFilesystem {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 140 |     pub fn new(block_manager: BlockManager) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub async fn parse_boot_sector(&mut self) -> Result<(), CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub async fn read_mft_entry(&mut self, record_number: u64) -> Result<MftEntry, CrossCryptError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn parse_mft_entry(&self, data: &[u8]) -> Result<MftEntry, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn parse_attribute(&self, data: &[u8]) -> Result<MftAttribute, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn parse_non_resident_data(&self, data: &[u8]) -> Result<AttributeData, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn parse_variable_int(&self, data: &[u8]) -> Result<u64, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     fn parse_signed_variable_int(&self, data: &[u8]) -> Result<i64, CrossCryptError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn parse_file_name(data: &[u8]) -> Result<FileNameAttr, CrossCryptError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinuxFuseFilesystem` is never constructed
[INFO] [stdout]   --> src/platform/linux.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct LinuxFuseFilesystem;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/platform/linux.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl LinuxFuseFilesystem {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 42 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.17s
[INFO] running `Command { std: "docker" "inspect" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16", kill_on_drop: false }`
[INFO] [stdout] 8e876b1bd85bfe9f779bcfb4ca0e3fe3082859e9716aa512cb3dbf1afe77ac16
